import ast
import logging
from 程序核心代码.mvvm重构.基础定义.基础图形项.节点图形项.带容器带组件带布局的节点图形项 import 带容器带组件带布局的节点图形项
from 程序核心代码.mvvm重构.基础定义.基础模型.容器类节点基础模型 import 容器类Ast模型基础模型
from 程序核心代码.mvvm重构.基础定义.节点管理器.自动节点注册表 import 注册节点模型, 节点模型匹配器, 注册节点图形项

logging.basicConfig(level=logging.WARNING, format='%(asctime)s - %(levelname)s - %(message)s')
日志记录器 = logging.getLogger(__name__)

@注册节点模型(ast.If)
class if条件节点模型(容器类Ast模型基础模型):
    """
    if条件节点模型，用于表示Python中的if条件语句
    处理条件判断、真值分支和假值分支（else部分）
    """
    def __init__(self, ast节点, 所属节点模型管理器, 上级节点=None, 节点位置=None):
        super().__init__(ast节点, 所属节点模型管理器, "if条件节点", 节点位置=节点位置, 上级节点=上级节点)
        self.是控制节点 = True

        # 设置日志级别
        if self.调试模式:
            日志记录器.setLevel(logging.DEBUG)
            日志记录器.debug(f"{self.__class__.__name__}调试模式已开启")
        else:
            日志记录器.setLevel(logging.ERROR)

        # 处理条件表达式
        条件表达式 = 节点模型匹配器(self._ast节点.test, self.所属节点模型管理器)

        if 条件表达式:
            # 创建条件表达式的数据流连接
            起始接口 = 条件表达式.添加接口到节点("数据流", "输出", 接口名称="条件值", 必须连接=True)
            结束接口 = self.添加接口到节点("数据流", "输入", 接口名称="条件表达式", 必须连接=True)
            起始接口.接口创建连接线模型(结束接口, self)

            # 创建执行流接口
            self.添加接口到节点("执行流", "输入", 接口名称="执行入口")
            self.添加接口到节点("执行流", "输出", 接口名称="执行出口")

            # 处理else分支
            else分支 = self._ast节点.orelse
            if else分支:
                日志记录器.debug("存在else分支")
                # 这里可以添加对else分支的处理逻辑
            else:
                日志记录器.debug("无else分支")

